package main

import "fmt"
/**
浮点型的分类

  类型        占用存储空间       表数范围     	       备注
  float32      4字节  		-3.403E38~3.403E38     单精度
  float64      8字节         -1.798E308~1.798E308   双精度(精度更高)

说明一下:
	1)关于浮点数在机器中存放形式的简单说明,浮点数=符号位+指数位+尾数位

	2)尾数部分可能丢失,造成精度损失. -123.0000901
	3)浮点型的存储分为三部分,符号+指数位+尾数位 在存储过程中,精度会有丢失

浮点型使用细节
 1)Golang浮点类型有固定的范围和字段长度,不受具体OS(操作系统)的影像
 2)Golang的浮点类型默认声明位float64类型.

 3)浮点型常量有两种表示形式
   十进制数形式,如,5.12  .512(相当于0.512 必须有小数点)
   科学计数法形式:如,5.1234e2 =5.12 * 10的2次方 5.12E-2 = 5.12/10 的2次方

 4)通常情况下,应该使用float64,因为它比float32更精确.

 */

func main() {

	var price float32=89.12
	fmt.Println("price=",price)

	var num1 float32=-0.00089
	var num2 float64=-7809656.09
	fmt.Println("num1=",num1,"num2=",num2)

	//尾数部分可能丢失,造成精度损失. -123.0000901

	var num3 float32=-123.0000901
	var num4 float64=-123.0000901
	fmt.Println("num3=",num3,"num4=",num4)

	//Golang 的浮点型默认声明位float64 类型
	var num5 = 1.1
	fmt.Printf("num5的数据类型是 %T \n",num5)

	// 实际值数形式 5.12   .512(0.512)必须有小数点
	num6 :=5.12
	num7 :=.512

	fmt.Println("num6=",num6,"num7=",num7)

	//科学计数法形式
	num8 :=5.1234e2  // 5.1234 * 10的2次方
	num9 :=5.1234E2  // 5.1234 * 10的2次方
	num10 :=5.1234E-2  // 5.1234 / 10的2次方

	fmt.Println("num8=",num8,"num9=",num9)
	fmt.Println("num10=",num10)

}


